/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package _4_Mapper;

import _5_DB.ConnectDB;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;

/**
 *
 * @author Lc.Danh
 */
public class LikeMapper {

    //Load like lên
    //Trả về chuỗi html
    public static String LoadLike(String liked) {
        String returnlike = "";
        try {
            String[] likedarr = liked.split(";");

            ConnectDB db = new ConnectDB();
            Connection con = db.getConnection();

            for (int i = 0; i < likedarr.length; i++) {
                if (likedarr[i].equals("")) {
                    continue;
                }
                CallableStatement proc = null;
                proc = con.prepareCall("{call procLayUser(?)}");

                proc.setInt(1, Integer.parseInt(likedarr[i])); //pID xài chung uID cho tiện

                ResultSet rs = proc.executeQuery();

                if (rs.next()) {
                    returnlike += "<a href='AccLoadProfile?u=";
                    returnlike += rs.getString("uID");   //Đường dẫn tới user thay đổi ở đây
                    returnlike += "'>";
                    returnlike += rs.getString("name");     //Tên của người like (thay đổi ở đây nếu muốn hiển thị nick
                    returnlike += "</a>&nbsp;&nbsp;";           //Phân cách giữa các người like thay đổi dòng này
                }
                rs.close();
            }
            con.close();

            if (returnlike != "") {
                returnlike = "- " + returnlike + "liked!";
            }

        } catch (Exception ex) {
        } finally {
        }
        return returnlike;
    }
    
    
    //Like
    public static void Like(int pID, int uID)
    {
        try{
            ConnectDB db = new ConnectDB();
            Connection con = db.getConnection();

            String liked = LoadPostMapper.load1post(pID).getLiked();
            if (liked==null || liked.equals(""))
                liked = ";"+uID+";";
            else
                liked = ";" + uID+";"+liked;
            liked=liked.trim();

            CallableStatement proc = null;
                proc = con.prepareCall("{call procLike(?,?)}");

                proc.setString(1,liked); 
                proc.setInt(2, pID);
                proc.executeUpdate();
        }
        catch(Exception ex){}
        finally{}
    }
    
    //Unlike
    public static void UnLike(int pID, int uID)
    {
        try{
            ConnectDB db = new ConnectDB();
            Connection con = db.getConnection();

            String liked = LoadPostMapper.load1post(pID).getLiked();
            liked=liked.replace(";"+uID+";","");
            liked=liked.trim();
            
            CallableStatement proc = null;
                proc = con.prepareCall("{call procLike(?,?)}");

                proc.setString(1, liked); 
                proc.setInt(2, pID);
                proc.executeUpdate();
        }
        catch(Exception ex){}
        finally{}
    }
}
